<?php
function cutText($string, $length, $encoding='utf-8', $end='...') {
    if(mb_strlen($string, $encoding) >= $length) {
        return mb_substr($string, 0, $length, $encoding).$end;
    } else {
        return $string;
    }
}

function jump($url) {
    header('Location:'.$url);
}

function len($string, $encoding='utf-8') {
    return mb_strlen($string, $encoding);
}
//输入过滤
function setHtmlString($data) {
    $newData = '';
    if(is_array($data)) {
        if(count($data) == 0) return;    //如果是一个空数组，则直接返回，防止把空数组过滤了
        foreach($data as $key=>$value) {
            $newData[$key] = setHtmlString($value);
        }
    } else if(is_object($data)) {
        foreach($data as $key=>$value) {
            $newData->$key = setHtmlString($value);
        }
    } else {
        return htmlspecialchars($data);
    }
    return $newData;
}

//转义表单数据
function setFormData($string) {
    //检查系统是否已经开启gpc自动过滤，如果开启了就不要手动转义，否则会造成二次转义
    if(!get_magic_quotes_gpc()) {
        //检查传入的数据是否是一个数组，如果是就遍历数组元素，然后再逐个递归调用本方法来进行转义
        if(is_array($string)) {
            foreach($string as $key=>$value) {
                //组成一个新的数组
                $string[$key] = setFormData($value);
            }
        } else {
            return addslashes($string);
        }
        return $string;
    }
    return $string;
}
function createDate() {
    return date('Y-m-d H:i:s');
}

function getIp() {
    return $_SERVER['REMOTE_ADDR'];
}

function alertAndClose($info, $value, $formName, $input, $view) {
    echo <<<END
        <script type='text/javascript'>
            alert('$info');
            var a = opener.document.$formName;
            a.$input.value='$value';
            opener.document.getElementById('$view').src = opener.document.getElementById('root').value + '$value';
            window.close();
        </script>
END;
}

//获取配置信息
function getSetting($set = '') {
    $setting = simplexml_load_file('Conf/setting.xml');
    return !empty($set) ? $setting->$set : $setting;
}

?>